Django Framework / Models / working with model
Working With Models
-
1. Defining Models
from django.db import models class BlogPost(models.Model): title = models.CharField(max_length=200) content = models.TextField() pub_date = models.DateTimeField(auto_now_add=True) -
2. Field types
1. IntegerField
It is used to store integer data
field_name = models.IntegerField(**options) //eg: geeks_field = models.IntegerField() 2. CharField
It is used to store small size alphanumeric data
field_name = models.CharField(max_length=200, **options) //eg: geeks_field = models.CharField(max_length = 200) 3. TextField
It is used to store large size alphanumeric data
field_name = models.TextField( **options) //eg: geeks_field = models.TextField() 4. DecimalField
to stores a fixed-precision decimal number,
field_name = models.DecimalField(max_digits=None, decimal_places=None, **options) //eg: geeks_field = models.DecimalField( max_digits = 5, decimal_places = 2) 5. DateField
to stores date
field_name = models.DateField(**options) //eg: geeks_field = models.DateField() 6. DateTimeField
to store date and time
field_name = models.DateTimeField(**options) //eg: geeks_field = models.DateTimeField() -
3. CRUD Operations
1. Creating / Insert
2. Readingpost = BlogPost(title='My First Post', content='Hello, Django ORM!') post.save() OR BlogPost.objects.create(title='My First Post', content='Hello, Django ORM!')
3. Updating//read all records all_posts = BlogPost.objects.all() //apply where filtered_posts = BlogPost.objects.filter(title__contains='Django') //get single record single_post = BlogPost.objects.get(pk=1) //apply limit limit_post= BlogPost.objects.all()[:2] //get first record first_object = BlogPost.objects.first() //get last record last_object = BlogPost.objects.last() //find sum total_event_price = Event.objects.values(sum('event_price)) //get specific fields Emp.objects.values('name','age') //get distinct values Emp.objects.distinct("age","name").values()
4. Deletingpost = BlogPost.objects.get(pk=1) post.title = 'Updated Title' post.save() post = BlogPost.objects.get(pk=1) post.delete() -
3. Aggregations
# SUM Emp.objects.aggregate(sum_sal = Sum('salary')) Output:'sum_sal': 695000.0} # COUNT # COUNT ignores null values Emp.objects.aggregate(total_row = Count('salary')) Output: {'total_row': 11} # AVG Emp.objects.aggregate(avg_sal = Avg('salary')) Output: {'avg_sal': 63181.818181818184} # MIN Emp.objects.aggregate(min_sal = Min('salary')) Output: {'min_sal': 45000.0} # MAX Emp.objects.aggregate(max_sal = Max('salary')) Output: {'max_sal': 80000.0}